package grafica;

import javax.swing.*;
import personaje.*;

/**
 * GraficaNivel representa la parte grafica de un nivel completo. Esta compuesta
 * por el fondo, los componentes y Mario
 * 
 * @author Agustin Orge (LU.85538)
 * @author Victoria Martinez de la Cruz (LU.87620)
 */
@SuppressWarnings("serial")
public class GraficaNivel extends JPanel {

	/** Atributos de instancia */
	private GraficaComponentes panelComponentes;
	private GraficaFondo panelFondo;
	private GraficaMario panelMario;
	private ManejadorBackground manejador;

	/**
	 * Constructor de GraficaNivel Crea e inicializa los paneles que la
	 * conforman.
	 * 
	 * @param m
	 *            instancia de Mario asociada al Nivel actual
	 */
	public GraficaNivel(Mario m) {
		super();
		panelComponentes = new GraficaComponentes();
		panelFondo = new GraficaFondo();
		panelMario = new GraficaMario(m);

		this.add(panelMario.getPanel());
		this.add(panelComponentes.getPanel());
		this.add(panelFondo.getPanel());

		manejador = new ManejadorBackground(panelFondo.getImagenPanel(),
				panelComponentes.getPanel());
	}

	/**
	 * Retorna el panel de componentes
	 * 
	 * @return panelComponentes
	 */
	public GraficaComponentes getPanelComponentes() {
		return panelComponentes;
	}

	/**
	 * Retorna el panel del fondo
	 * 
	 * @return panelFondo
	 */
	public GraficaFondo getPanelFondo() {
		return panelFondo;
	}

	/**
	 * Retorna el panel de Mario
	 * 
	 * @return panelMario
	 */
	public GraficaMario getPanelMario() {
		return panelMario;
	}

	/**
	 * Retorna el manejador de background
	 * 
	 * @return manejador
	 */

	public ManejadorBackground getManejador() {
		return manejador;
	}

}
